package com.demo.java.OD351_400.OD356;

import java.util.ArrayList;
import java.util.List;

/**
 * @author bug菌
 * @Source 公众号：猿圈奇妙屋
 * @des： 【 矩阵元素的边界值(B卷)】问题
 * @url： https://blog.csdn.net/weixin_43970743/article/details/146165169
 */
public class OdMain {
    // 计算每列的最大值，然后找出这些最大值中的最小值
    public static int getMinColumnMaximum(int[][] arr) {
        int m = arr.length; // 获取行数
        int n = arr[0].length; // 获取列数
        List<Integer> columnMaxValues = new ArrayList<>(); // 存储每列的最大值

        // 遍历每一列
        for (int j = 0; j < n; j++) {
            int maxInColumn = arr[0][j]; // 初始化最大值为当前列的第一个元素
            // 遍历当前列的每一行，找出该列的最大值
            for (int i = 0; i < m; i++) {
                maxInColumn = Math.max(maxInColumn, arr[i][j]);
            }
            columnMaxValues.add(maxInColumn); // 将最大值添加到列表中
        }

        columnMaxValues.sort(Integer::compareTo); // 对每列的最大值进行升序排序
        return columnMaxValues.get(0); // 返回最小的最大值
    }

    public static void main(String[] args) {
        int[][] arr = {{1, 2}, {3, 4}}; // 示例输入
        int result = getMinColumnMaximum(arr); // 调用方法计算结果
        System.out.println(result); // 输出结果
    }
}